#include "stm32f1xx_hal.h"
#include <stdint.h>
#include "app_UI.h"
#include "lcd.h"
#include "ugui.h"
#include "main.h"

/* 窗口回调函数声明
 * @param msg: 消息结构体指针，包含消息类型、事件和对象ID等信息
 * @return none
 */
static void window_1_callback(UG_MESSAGE *msg);
static void window_2_callback(UG_MESSAGE *msg);
static void window_3_callback(UG_MESSAGE *msg);
UG_WINDOW window_1, window_2, window_3; // 定义窗口对象
static UG_OBJECT obj_buff_wnd_1[10];    // 定义窗口对象缓冲区,用于存储窗口中的控件对象,最大支持10个对象
static UG_OBJECT obj_buff_wnd_2[10];
static UG_OBJECT obj_buff_wnd_3[10];

void UIShow_init(void)
{
  uint32_t start_time;
  uint8_t progress = 0;
  UG_PROGRESS pgb; // 定义进度条对象
  
  /* 创建并配置窗口 */
  UG_WindowCreate(&window_1, obj_buff_wnd_1, 10, window_1_callback);
  UG_WindowCreate(&window_2, obj_buff_wnd_2, 10, window_2_callback);
  UG_WindowCreate(&window_3, obj_buff_wnd_3, 10, window_3_callback);

  /* 设置窗口属性 */
  UG_WindowSetTitleText(&window_1, "");                 // 设置窗口标题为空
  UG_WindowSetTitleTextFont(&window_1, FONT_arial_6X6); // 设置标题字体
  UG_WindowSetTitleHeight(&window_1, 0);                // 设置标题栏高度为0
  UG_WindowSetBackColor(&window_1, BACKGROUND_COLOR);   // 设置窗口背景色

  UG_WindowSetTitleText(&window_2, "");
  UG_WindowSetTitleTextFont(&window_2, FONT_arial_6X6);
  UG_WindowSetTitleHeight(&window_2, 0);
  UG_WindowSetBackColor(&window_2, BACKGROUND_COLOR);

  UG_WindowSetTitleText(&window_3, "");
  UG_WindowSetTitleTextFont(&window_3, FONT_arial_6X6);
  UG_WindowSetTitleHeight(&window_3, 0);
  UG_WindowSetBackColor(&window_3, BACKGROUND_COLOR);

  /* 设置窗口位置和大小 */
  UG_WindowSetXStart(&window_1, 0);            // 设置窗口起始X坐标
  UG_WindowSetYStart(&window_1, 0);            // 设置窗口起始Y坐标
  UG_WindowSetXEnd(&window_1, LCD_WIDTH - 1);  // 设置窗口结束X坐标
  UG_WindowSetYEnd(&window_1, LCD_HEIGHT - 1); // 设置窗口结束Y坐标

  UG_WindowSetXStart(&window_2, 0);
  UG_WindowSetYStart(&window_2, 0);
  UG_WindowSetXEnd(&window_2, LCD_WIDTH - 1);
  UG_WindowSetYEnd(&window_2, LCD_HEIGHT - 1); // 设置窗口结束的 y 坐标

  UG_WindowSetXStart(&window_3, 0);
  UG_WindowSetYStart(&window_3, 0);
  UG_WindowSetXEnd(&window_3, LCD_WIDTH - 1);
  UG_WindowSetYEnd(&window_3, LCD_HEIGHT - 1); // 设置窗口结束的 y 坐标

  /* 创建进度条 */
  UG_ProgressCreate(&window_1, &pgb, PGB_ID_0, 10, 220, LCD_WIDTH - 20, 233); // 创建进度条,设置位置和大小
  UG_ProgressSetForeColor(&window_1, PGB_ID_0, C_ROYAL_BLUE);                 // 设置进度条前景色为皇家蓝

  /* 显示窗口并更新 */
  UG_WindowShow(&window_1);
  UG_Update();
}


/* 界面的循环函数 */
void UIShow_page1(void)
{

  UG_Update();
}

/* 界面的循环函数 */
void UIShow_page2(void)
{

  UG_Update();
}





static void window_1_callback(UG_MESSAGE *msg)
{


}


static void window_2_callback(UG_MESSAGE *msg)
{

  
}


static void window_3_callback(UG_MESSAGE *msg)
{

  
}
